import { message } from 'antd';
import axios from 'axios';
import history from './history';
import { getToken } from './storage';

export const baseURL = 'http://geek.itheima.net';

const instance = axios.create({
  baseURL,
  timeout: 5000,
});

// 请求拦截器
instance.interceptors.request.use(
  (config) => {
    // 全局配置请求头
    if (getToken()) {
      config.headers.Authorization = `Bearer ${getToken()}`;
    }
    // console.log(config);
    return config;
  },
  (error) => {
    return Promise.reject(error);
  }
);

// 响应拦截器
instance.interceptors.response.use(
  (res) => {
    // console.log(res);
    return res.data.data;
  },
  (err) => {
    // console.dir(err);
    console.dir(err);
    if (err.response.status === 401) {
      message.warning('登录信息已过期,请从新登陆😊!', 2);

      // ❌不推荐使用window.location来跳转页面(会强制刷新页面,导致提示信息不显示)
      // window.location.href = '/login';

      // 跳转到登录页
      // 在request的响应体中使用history去操作路由跳转;
      history.push('/login');
    }
    return Promise.reject(err);
  }
);

export default instance;
